Node.js 기초

Node.js 기초

크롬 V8 엔진 기반 JS 런타임, 이벤트 기반 논블로킹 I/O

개요

동기 vs 비동기

구분 설명
동기(Sync) 작업을 직렬로 순차 처리
비동기(Async) 작업을 병렬로 동시에 처리 가능

NPM (Node Package Manager)

세계 최대의 재사용 가능한 오픈소스 저장소

npm init                          # package.json 생성
npm install 패키지명              # 패키지 설치
npm i 패키지명 --save-dev         # 개발환경 전용 설치
npm i -g 패키지명                 # 전역 설치
npm uninstall 패키지명            # 패키지 제거

package.json

관련 파일

파일/폴더 역할
node_modules/ 설치된 패키지 실제 파일 위치
package-lock.json 패키지 간 의존 관계 정보

package.json이 있으면 npm install로 전체 패키지 자동 복원

NVM (Node Version Manager)

nvm install 버전명      # 특정 버전 설치
nvm use 버전명          # 특정 버전 활성화 (★ 표시)
nvm uninstall 버전명    # 특정 버전 삭제

nodemon

템플릿 엔진

엔진 특징
Pug(Jade) 별도 문법 학습 필요, 간결
EJS HTML 기반 동적 생성
// EJS v2.x
<% include ./header.ejs %>

// EJS v3.x
<%- include('./header.ejs', { data: "aaa" }) %>

CORS

세션 관리 (분산 서버)

데이터 분류

종류 설명 저장소
정형데이터 형태가 정해진 데이터 관계형 DB
비정형데이터 형태가 정해지지 않은 데이터 NoSQL

관련 개념